home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Libraries / 3DGPL 1.0 / CODE / HARDWARE / 8086-BCC / HARDWARE.H < prev   
Encoding:
C/C++ Source or Header  |  1995-06-20  |  2.6 KB  |  75 lines  |  [TEXT/MACA]

  1. #ifndef _HARDWARE_H_
  2. #define _HARDWARE_H_
  3.  
  4. /** 3DGPL *************************************************\
  5.  *  (MSDOS, 8086+, VGA, BCC/LARGE MODEL+)                 *
  6.  *  Header for hardware specific stuff.                   *
  7.  *                                                        *
  8.  *  hardware.c               hardware specific stuff.     *
  9.  *                                                        *
  10.  *  (6/1995) By Sergei Savhenko. (savs@cs.mcgill.ca).     *
  11.  *  Copyright (c) 1995 Sergei Savchenko.                  *
  12.  *  THIS SOURCE CODE CAN'T BE USED FOR COMERCIAL PURPOSES *
  13.  *  WITHOUT AUTHORISATION                                 *
  14. \**********************************************************/
  15.  
  16. #include <string.h>                         /* memset, memcpy */
  17.  
  18. typedef int  signed_16_bit;                 /* compiler/mashine dependent */
  19. typedef long signed_32_bit;           
  20. typedef unsigned int  unsigned_16_bit;
  21. typedef unsigned long unsigned_32_bit;
  22.  
  23. void HW_set_int(int *dst,int lng,int val);
  24. #define HW_set_char(dst,lng,val)  memset(dst,val,lng)
  25. #define HW_copy_int(src,dst,lng)  memcpy(dst,src,lng*sizeof(int))
  26. #define HW_copy_char(src,dst,lng) memcpy(dst,src,lng)
  27.  
  28. #define HW_SCREEN_X_SIZE         320             
  29. #define HW_SCREEN_Y_SIZE         200        /* number of pixels total */
  30.  
  31. #define HW_SCREEN_X_MAX          319
  32. #define HW_SCREEN_Y_MAX          199        /* number of maximum pixel */
  33.  
  34. #define HW_SCREEN_X_CENTRE       160
  35. #define HW_SCREEN_Y_CENTRE       100        /* middle of the screen */
  36.  
  37. #define HW_COLOURMAP_SIZE_CHAR 64000L       /* bytes in the colourmap */
  38. #define HW_COLOURMAP_SIZE_INT  32000L       /* ints in the colourmap */
  39.  
  40. struct HW_colour                            /* describes colour */
  41. {
  42.  int hw_r;
  43.  int hw_g;
  44.  int hw_b;                                  /* intensity components */
  45. };
  46.  
  47. int HW_open_screen(char *display_name,
  48.                    char *screen_name, 
  49.                    struct HW_colour palette[256],
  50.                    unsigned char *colourmap
  51.                   );
  52. void HW_blit(void);
  53. void HW_close_screen(void);
  54.  
  55. #define HW_KEY_ARROW_LEFT  75
  56. #define HW_KEY_ARROW_RIGHT 77
  57. #define HW_KEY_ARROW_UP    72
  58. #define HW_KEY_ARROW_DOWN  80
  59.  
  60. #define HW_KEY_PLUS        43
  61. #define HW_KEY_MINUS       45
  62.  
  63. #define HW_KEY_ENTER       13
  64. #define HW_KEY_SPACE       32
  65. #define HW_KEY_TAB          9               /* all i can think of */ 
  66.  
  67. void HW_run_event_loop(void (*application_main)(void),
  68.                        void (*application_key_handler)(int key_code)
  69.                       );
  70. void HW_quit_event_loop(void);
  71.  
  72. /**********************************************************/
  73.  
  74. #endif
  75.